#ifndef _PhongMaterial_H_
#define _PhongMaterial_H_

#pragma once
#include "Material.h"

class PhongMaterial : public Material {
private:
	shared_ptr<Material> diffuse;
	shared_ptr<Material> specular;
	Float kd, ks;
	Float shininess;

public:
	PhongMaterial(shared_ptr<Material> diffuse, shared_ptr<Material> specular, Float shininess, Float kd = 1, Float ks = 1) :
		diffuse(diffuse), specular(specular), shininess(shininess), kd(kd), ks(ks) {}
	~PhongMaterial() {}

	virtual Color shade(const Scene *scene, const Ray &ray, const IntersectResult &intersect, const TraceState & traceState) const;
};

#endif // _PhongMaterial_H_